package com.arraylist;

import java.util.ArrayList;

public class ArrayListTest2 {
    /*
     * 目标：掌握从容器中找数据并删除的技巧
     * */

    public static void main(String[] args) {
        // 1. 创建一个ArrayList集合
        ArrayList<String> list = new ArrayList<>();
        list.add("Java入门");
        list.add("鼠标");
        list.add("吉安");
        list.add("树苗");
        list.add("Java基础");
        list.add("Java基础2");
        list.add("耳机");
        list.add("门");
        list.add("Java精通");

        System.out.println(list); // [Java入门, 鼠标, 吉安, 树苗, Java基础, Java基础2, 耳机, 门, Java精通]

        // 2.开始完成需求：从集合中找出包含枸杞的数据并删除它
//        for (int i = 0; i < list.size(); i++) {
//            // i=0,1,2,3,4,5
//
//            // 取出当前遍历到的数据
//            String str = list.get(i);
//
//            // 判断这个数据中包含Java
//            if (str.contains("Java")) {
//                System.out.println(123);
//
//                // 直接从集合中删除该数据
//                list.remove(str);
//            }
//        }

        // 方式一 每次删除一个数据后，就让 i 往左边退一步

//        for (int i = 0; i < list.size(); i++) {
//            // i=0,1,2,3,4,5
//
//            // 取出当前遍历到的数据
//            String str = list.get(i);
//
//            // 判断这个数据中包含Java
//            if (str.contains("Java")) {
//
//                // 直接从集合中删除该数据
//                list.remove(str);
//                i--; //每次删除一个数据后，就让 i 往左边退一步
//            }
//        }

        // 方式二： 从集合的后面倒着遍历并删除
        // list.size() -1 是集合里的最后一个位置
        for (int i = list.size() - 1; i >= 0; i--) {
            // 取出当前遍历到的数据
            String str = list.get(i);

            // 判断这个数据中包含Java
            if (str.contains("Java")) {
                // 直接从集合中删除该数据
                list.remove(str);
            }
        }

        System.out.println(list);
    }


}
